package com.syg.springboot07.rabbitmq._04_Router;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.syg.springboot07.rabbitmq._03Subscrible.ConnectionUtil;

/**
 * 消息的生产者（看作是后台系统）
 * 向交换机中发送消息。
 * 注意：消息发送到没有队列绑定的交换机时，消息将丢失，因为，交换机没有存储消息的能力，消息只能存在在队列中。
 *
 * 队列和交换机是rabbit实现绑定的
 */
public class Send {

    private final static String EXCHANGE_NAME = "test_exchange_direct";//可以随便写嘛？

    public static void main(String[] argv) throws Exception {
        // 获取到连接以及mq通道
        Connection connection = ConnectionUtil.getConnection();
        Channel channel = connection.createChannel();

        // 声明exchange
        channel.exchangeDeclare(EXCHANGE_NAME, "direct");//direct可以随意写嘛？

        // 消息内容
        String message = "删除商品";
        channel.basicPublish(EXCHANGE_NAME, "delete", null, message.getBytes());//delete可以随意写嘛？
        System.out.println(" [x] Sent '" + message + "'");

        channel.close();
        connection.close();
    }
}
